//
//  XMGStatusWindow.m
//  BuDeJie19
//
//  Created by hjj on 2016/12/3.
//  Copyright © 2016年 hjjuny. All rights reserved.
//
#import "XMGStatusWindow.h"

@implementation XMGStatusWindow

static XMGStatusWindow *_statusWindow;

+ (void)show
{
    XMGStatusWindow *statusWindow = [[XMGStatusWindow alloc] initWithFrame:CGRectMake(0, 0, XMGScreenW, 20)];
    statusWindow.windowLevel = UIWindowLevelAlert;
    statusWindow.backgroundColor = [UIColor clearColor];
    statusWindow.rootViewController = [[UIViewController alloc] init];
    statusWindow.hidden = NO;
    _statusWindow = statusWindow;
    
    // 当程序有多个窗口的时候，状态栏自动隐藏
    // 恢复状态栏显示
    [UIApplication sharedApplication].statusBarHidden = NO;
    
}

// 递归
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    // 拿到tableView回到顶部
   // 遍历窗口所有的子控件，看有没有tableView
    UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
    
    // 获取窗口的所有子控件
    UITableView *tableView = [self fetchTableView:keyWindow];
    
    // 会到顶部
    [tableView setContentOffset:CGPointMake(0, -tableView.contentInset.top) animated:YES];
}

// 递归和死循环

// 递归有结束语句

#pragma mark - 获取控件的所有的子控件
- (UITableView *)fetchTableView:(UIView *)view
{
    
    for (UIView *childView in view.subviews) {
        
        if ([childView isKindOfClass:[UITableView class]]) {
            return (UITableView *)childView;
        }
        
       UITableView *tableView = [self fetchTableView:childView];
        
        if (tableView) {
            return tableView;
        }
    }
    
    return nil;
}

@end
